//
// Created by Gorun on 2022/5/3.
//

#ifndef LOXPP_LOXCALLABLE_H
#define LOXPP_LOXCALLABLE_H

#include <any>
#include <string>
#include <vector>

using namespace  std;

class Interpreter;

class LoxCallable {
public:
    virtual int arity() = 0;
    virtual any call(Interpreter& interpreter, vector<any> arguments) = 0;
    virtual string toString() = 0;
    virtual ~LoxCallable() = default;
};

#endif //LOXPP_LOXCALLABLE_H
